#ifndef __CANYON_CORE_INSTRUCTIONS
#define __CANYON_CORE_INSTRUCTIONS

#include "arch.hpp"

namespace canyon{

enum instructions : code_t{
    exit = 1,
    mov_ir0,
    mov_ir1,
    mov_ir2,
    mov_ir3,
    mov_i0m,
    mov_r0r0,
    mov_rr,
    mov_r0m,
    mov_r1m,
    mov_r2m,
    mov_r3m,
    mov_r4m,
    mov_r5m,
    mov_r6m,
    mov_r7m,
    mov_rm,
    mov_mr0,
    mov_mr1,
    mov_mr2,
    mov_mr3,
    mov_mr4,
    mov_mr5,
    mov_mr6,
    mov_mr7,
    mov_mm,
    swap_rr,
    swap_mm,
    swap_r_00,
    swap_r_01,
    swap_r_02,
    swap_r_03,
    swap_r_04,
    swap_r_05,
    swap_r_06,
    swap_r_07,
    band,
    bor,
    bxor,
    bnot,
    bleft,
    bright,
    add,
    sub,
    mul,
    div,
    cmp,
    jmp,
    jmp_a_if_b,
    jmp_a_ifn_b,
    jmp_adr_ife,
    jmp_adr_ifne,
    jmp_adr_ifalb,
    jmp_adr_ifagb,
    jmp_adr_ifaleb,
    jmp_adr_ifageb,
    map_dm,
    umap_d,
    info_dev_count,
    call_d
};

}

#endif
